////设计一个支持 push ，pop ，top 操作，并能在常数时间内检索到最小元素的栈。
////
////
//// push(x) —— 将元素 x 推入栈中。
//// pop() —— 删除栈顶的元素。
//// top() —— 获取栈顶元素。
//// getMin() —— 检索栈中的最小元素。
////
////
////
////
//// 示例:
////
//// 输入：
////["MinStack","push","push","push","getMin","pop","top","getMin"]
////[[],[-2],[0],[-3],[],[],[],[]]
////
////输出：
////[null,null,null,null,-3,null,0,-2]
////
////解释：
////MinStack minStack = new MinStack();
////minStack.push(-2);
////minStack.push(0);
////minStack.push(-3);
////minStack.getMin();   --> 返回 -3.
////minStack.pop();
////minStack.top();      --> 返回 0.
////minStack.getMin();   --> 返回 -2.
////
////
////
////
//// 提示：
////
////
//// pop、top 和 getMin 操作总是在 非空栈 上调用。
////
//// Related Topics 栈 设计
//// 👍 932 👎 0
//
///**
// * @author DaHuangXiao
// */
//package leetcode.editor.cn;
//
//import java.util.LinkedList;
//import java.util.Stack;
//
//public class MinStack {
//    public static void main(String[] args) {
////        Solution solution = new MinStack().new Solution();
//        MinStack minStack = new MinStack2().new MinStack();
//        minStack.push(512);
//        minStack.push(-1024);
//        minStack.push(-1024);
//        minStack.push(512);
//        minStack.pop();
//        minStack.pop();
//        minStack.pop();
//        System.out.println(minStack.getMin());
//
//    }
//
//    //leetcode submit region begin(Prohibit modification and deletion)
//    class MinStack {
//
//        /**
//         * initialize your data structure here.
//         */
//        private LinkedList<Integer> linkedList;
//        private LinkedList<Integer> minStack;
//        public MinStack() {
//            linkedList = new LinkedList<>();
//            minStack = new LinkedList<>();
//        }
//
//        public void push(int val) {
//            linkedList.addLast(val);
//            if (minStack.isEmpty()){
//                minStack.addLast(val);
//                return;
//            }
//            if (!minStack.isEmpty()&&minStack.getLast()>=val){
//                minStack.addLast(val);
//            }
//        }
//
//        public void pop() {
//            Integer res = linkedList.pollLast();
//            // 必须要用equals
//            if (res.equals(minStack.getLast())){
//                minStack.pollLast();
//            }
//        }
//
//        public int top() {
//            return linkedList.getLast();
//        }
//
//        public int getMin() {
//            if(minStack.isEmpty()){
//                return 0;
//            }
//            return minStack.getLast();
//        }
//    }
//
///**
// * Your MinStack object will be instantiated and called as such:
// * MinStack obj = new MinStack();
// * obj.push(val);
// * obj.pop();
// * int param_3 = obj.top();
// * int param_4 = obj.getMin();
// */
////leetcode submit region end(Prohibit modification and deletion)
//
//}